<%-- 
    Document   : UserAvailableResearches
    Created on : Nov 9, 2011, 10:02:26 AM
    Author     : Vinicius
--%>
<%@page import="data.*"%>
<%@page import="java.util.*"%>
<%@page import="transactions.*"%>
<%@page import="java.text.*"%>
<%@page import="utils.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%

    session.setAttribute("pesquisa_id", 1);
    session.setAttribute("user_id", 1);

    int pesquisa_id;
    int user_id;
    int indice_atual = 0;
    int quant_pergs = 0;
    boolean sucesso = false;
    boolean respondendo = true;
    String acao;
    String erro = "";
    String opcao;
    LinkedList<PerguntasDO> pergs;
    LinkedList<ResultadosDO> lista_respostas;
    PerguntasDO pergunta = new PerguntasDO();
    ResultadosDO resp;
    UserDO user = new UserDO();
    PontuacaoDO pontos = new PontuacaoDO();
    //PesquisaDO pesq = new PesquisaDO();
    User usuario;
    Perguntas perguntas;
    Resultados resultados;
    //Pesquisa pesquisa;

    acao = (String) request.getParameter("user_responder_pesquisa_botao");
    opcao = (String) request.getParameter("opcao");

    if (acao == null) {

        session.setAttribute("indice_atual", 1);
        session.setAttribute("respondendo", true);
        session.setAttribute("sucesso", false);

        pesquisa_id = (Integer) session.getAttribute("pesquisa_id");
        user_id = (Integer) session.getAttribute("user_id");
        indice_atual = (Integer) session.getAttribute("indice_atual");
        respondendo = (Boolean) session.getAttribute("respondendo");
        sucesso = (Boolean) session.getAttribute("sucesso");

        //pesquisa = new Pesquisa();
        //pesq = pesquisa.consultar(pesquisa_id);
        //session.setAttribute("pesquisa", pesq);
        
        usuario = new User();
        user = usuario.consultar(user_id);
        session.setAttribute("user",user);        

        pontos = new PontuacaoDO();
        pontos.setUser_id(user_id);
        pontos.setPesquisa_id(pesquisa_id);
        //pontos.setPontos(pesq.getPontuacao());
        pontos.setPontos(25);
        session.setAttribute("pontos", pontos);

        perguntas = new Perguntas();
        pergs = perguntas.consultar(pesquisa_id);
        session.setAttribute("lista_pergs", pergs);

        quant_pergs = pergs.size();
        session.setAttribute("quant_pergs", quant_pergs);

        resultados = new Resultados();
        session.setAttribute("results", resultados);

        lista_respostas = new LinkedList<ResultadosDO>();
        session.setAttribute("lista_resps", lista_respostas);

        pergunta = pergs.get(indice_atual-1);

    } else { // fim da ação nula

        if (acao.equalsIgnoreCase("Proxima") || acao.equalsIgnoreCase("Enviar")) {

            if (opcao != null) {

                erro = "";
                
                pesquisa_id = (Integer) session.getAttribute("pesquisa_id");
                user_id = (Integer) session.getAttribute("user_id");
                indice_atual = (Integer) session.getAttribute("indice_atual");
                lista_respostas = (LinkedList<ResultadosDO>) session.getAttribute("lista_resps");
                pergs = (LinkedList<PerguntasDO>) session.getAttribute("lista_pergs");
                resultados = (Resultados) session.getAttribute("results");
                respondendo = (Boolean) session.getAttribute("respondendo");
                sucesso = (Boolean) session.getAttribute("sucesso");
                quant_pergs = (Integer) session.getAttribute("quant_pergs");
                user = (UserDO) session.getAttribute("user");
                //pesq = (PesquisaDO) session.getAttribute("pesquisa");

                pergunta = pergs.get(indice_atual-1);

                resp = new ResultadosDO();
                resp.setUser_id(user_id);
                resp.setPesquisa_id(pesquisa_id);
                resp.setPergunta_indice(pergunta.getIndice());
                resp.setResposta(opcao);
                lista_respostas.add(resp);

                if (acao.equalsIgnoreCase("Proxima")) {

                    session.setAttribute("list_resps", lista_respostas);
                    indice_atual++;
                    session.setAttribute("indice_atual", indice_atual);
                    pergunta = pergs.get(indice_atual-1);
                    session.setAttribute("respondendo", true);

                } else {

                    if (acao.equalsIgnoreCase("Enviar")) {

                        pontos = (PontuacaoDO) session.getAttribute("pontos");
                        pontos.setLiberado(true);
                        sucesso = resultados.inserir(lista_respostas,pontos);
                        session.removeAttribute("pesquisa_id");
                        session.setAttribute("respondendo", false);

                    }//fim da ação enviar

                }// fim do else da ação próxima

            } else { // else para opção vazia

                erro = "Por favor escolha uma opção!";
                
                pesquisa_id = (Integer) session.getAttribute("pesquisa_id");
                user_id = (Integer) session.getAttribute("user_id");
                indice_atual = (Integer) session.getAttribute("indice_atual");
                lista_respostas = (LinkedList<ResultadosDO>) session.getAttribute("lista_resps");
                pergs = (LinkedList<PerguntasDO>) session.getAttribute("lista_pergs");
                resultados = (Resultados) session.getAttribute("results");
                respondendo = (Boolean) session.getAttribute("respondendo");
                sucesso = (Boolean) session.getAttribute("sucesso");
                quant_pergs = (Integer) session.getAttribute("quant_pergs");
                user = (UserDO) session.getAttribute("user");
                //pesq = (PesquisaDO) session.getAttribute("pesquisa");

                pergunta = pergs.get(indice_atual-1);

            }

        } else {     // fim da ação próximo ou enviar

            if (acao.equalsIgnoreCase("Cancelar")||acao.equalsIgnoreCase("Voltar para home")) {

                session.removeAttribute("pesquisa_id");
                pageContext.forward("./user_home.jsp");

            }  // fim da ação cancelar 
  
        } // fim do else da ação próximo ou enviar

    } //fim do else da ação nula

    respondendo = (Boolean) session.getAttribute("respondendo");

%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>.: www.squizme.com.br :.</title>
    </head>
    <body>
        <table WIDTH=800 align=center>
            <tr height=80 align=center>
                <td><img src="../images/Logo.png" width=600 align=center/></a></td>
            </tr>  
            <tr align=center>
            <table align=center>
                <%if (respondendo){%>
                <tr align=center>
                    <th>
                        <h2>Nome da pesquisa: <%//= pesq.getNome_Pesquisa()%></h2>
                    </th>
                </tr>
                <tr align=center>
                    <td>
                        <h3>Pergunta <%= pergunta.getIndice()%></h3>
                    </td>
                </tr>
                <tr align=center>
                    <td>
                        <b>-> <%= pergunta.getPergunta()%>.</b>
                    </td>
                </tr>
                <tr align=center>
                    <td>
                        <form method="post" name="respostas" action="responder_pesquisa.jsp">
                            A: <input type="radio" name="opcao" value="a"/> - <%= pergunta.getOpcao_A()%><br>
                            B: <input type="radio" name="opcao" value="b"/> - <%= pergunta.getOpcao_B()%><br>
                            C: <input type="radio" name="opcao" value="c"/> - <%= pergunta.getOpcao_C()%><br>
<%                          if(pergunta.getOpcao_D() != null){%>
                            D: <input type="radio" name="opcao" value="d"/> - <%= pergunta.getOpcao_D()%><br>
<%                          }
                            if(pergunta.getOpcao_E() != null){%>
                            E: <input type="radio" name="opcao" value="e"/> - <%= pergunta.getOpcao_E()%><br><br>
<%                          }%>
                    </td>
                </tr>
                <tr align=center>
                    <td>  
<%                      if (indice_atual < (quant_pergs)){%>
                            <input type="submit" name="user_responder_pesquisa_botao" value="Proxima" label="Próxima"/>
<%                      }else{%>
                            <input type="submit" name="user_responder_pesquisa_botao" value="Enviar"/>
<%                      }%>
                        <input type="submit" name="user_responder_pesquisa_botao" value="Cancelar" />
                    </td>
                    <tr align=center>
                        <td>
                            <font color ="red"><%= erro %></font>
                        </td>
                    </tr>
                        </form>
                </tr>
<%              }else{
                if (sucesso){%>
                        <tr align=center>
                            <th>
                                <h2>Parabéns <%= user.getNome()%> !</h2>
                            </th>
                        </tr>
                        <tr align=center>
                            <td>
                                <h3>Pesquisa <%//= pesq.getNome_Pesquisa()%> concluída com sucesso.</h3>
                            </td>
                        </tr>
                        <tr align=center>
                            <td>
                                <br><h3>Foram adicionados <font color="red"> <%= pontos.getPontos()%></font> pontos a sua conta, referentes à pesquisa <%//= pesq.getNome_Pesquisa()%>.</h3></br>
                            </td>
                        </tr>
                        <tr align=center>
                            <td>
                                <form method="post" action=responder_pesquisa.jsp>
                                    <input type="submit" name="user_responder_pesquisa_botao" value="Voltar para home" title="Voltar para home" />
                                </form>
                            </td>
                        </tr>
<%               } else{%>
                        <tr align=center>
                            <th>
                                <h2><font color ="red">ERRO!</font></h2><br>
                                <h2>Pesquisa <%//= pesq.getNome_Pesquisa()%> não concluída.</h2>
                                <h2>Por favor, tente novamente mais tarde.</h2>
                            </th>
                        </tr>
                        <tr align=center>
                            <td>
                                <form method="post" action=responder_pesquisa.jsp>
                                    <input type="submit" name="user_responder_pesquisa_botao" value="Voltar para home" title="Voltar para home"/>
                                </form>
                            </td>
                        </tr>       
<%     }
  }
%> 
            </table>
            </tr>   
        </table>
    </body>        
</html>